package com.shtel.bss.saas.tenant.mapstrut;

import com.github.pagehelper.PageInfo;
import com.shtel.bss.saas.core.pub.convert.EntityDtoTypeConvertor;
import com.shtel.bss.saas.tenant.bo.*;
import com.shtel.bss.saas.tenant.dto.QrySysGlobalAuthResDTO;
import com.shtel.bss.saas.tenant.dto.SysGlobalAuthDTO;
import com.shtel.bss.saas.tenant.dto.SysRoleDTO;
import com.shtel.bss.saas.tenant.dto.SysTenantDTO;
import com.shtel.bss.saas.tenant.dto.SysUserDTO;
import com.shtel.bss.saas.tenant.entity.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @Author jint
 * @Date 2020/2/7 15:52
 * @Version 1.0
 * @Description
 **/
@Mapper(uses = {EntityDtoTypeConvertor.class})
public interface EntityDtoMapper {
    EntityDtoMapper INSTANCE = Mappers.getMapper(EntityDtoMapper.class);

    PageInfo<SysRoleDTO> toSysRolePageInfo(PageInfo<SysRoleBo> sysRoleBoPageInfo);

    PageInfo<SysRoleBo> toSysRoleBoPageInfo(PageInfo<SysRole> sysRolePageInfo);

    SysRoleDTO toSysRoleDTO(SysRoleBo sysRoleBo);

    SysRoleBo toSysRoleBo(SysRole sysRole);

    SysRole toSysRole(SysRoleBo sysRoleBo);

    SysRoleBo toSysRoleBo(SysRoleDTO sysRoleDTO);

    SysUserBo toSysUserBo(SysUserDTO sysUserDTO);

    SysUser toSysUser(SysUserBo sysUserBo);

    PageInfo<SysUserDTO> toSysUserPageInfo(PageInfo<SysUserBo> sysUserBoPageInfo);

    PageInfo<SysUserBo> toSysUserBoPageInfo(PageInfo<SysUser> sysUserPageInfo);

    SysUserDTO toSysUserDTO(SysUserBo sysUserBo);

    SysUserBo toSysUserBo(SysUser sysUser);

    SysTenantDTO toSysTenantDTO(SysTenantBo sysTenantBo);

    SysTenantBo toSysTenantBo(SysTenant sysTenant);

    SysTenant toSysTenant(SysTenantBo sysTenantBo);

    SysTenantBo toSysTenantBo(SysTenantDTO sysTenantDTO);

    PageInfo<SysTenantDTO> toSysTenantDTOPageInfo(PageInfo<SysTenantBo> sysTenantBoPageInfo);

    PageInfo<SysTenantBo> toSysTenantBoPageInfo(PageInfo<SysTenant> sysTenantPageInfo);

    SysGlobalAuthDTO toSysGlobalAuthDTO(SysGlobalAuthBo sysGlobalAuthBo);

    SysGlobalAuthBo toSysGlobalAuthBo(SysGlobalAuthDTO sysGlobalAuthDTO);

    SysGlobalAuth toSysGlobalAuth(SysGlobalAuthBo sysGlobalAuthBo);

    PageInfo<SysGlobalAuthDTO> toSysGlobalAuthBoPageInfo(PageInfo<SysGlobalAuthBo> sysGlobalAuthBoPageInfo);

    PageInfo<SysGlobalAuthBo> toSysGlobalAuthPageInfo(PageInfo<SysGlobalAuth> sysGlobalAuthPageInfo);

    SysTenantAuthJoin toSysTenantAuthJoin(SysTenantAuthJoinBo sysTenantAuthJoinBo);

    List<QrySysGlobalAuthResBo> toQrySysGlobalAuthResBoList(List<SysGlobalAuth> sysGlobalAuthPageInfo);

    PageInfo<QrySysGlobalAuthResBo> toQrySysGlobalAuthResBoPageInfo(PageInfo<SysGlobalAuth> sysGlobalAuthPageInfo);

    PageInfo<QrySysGlobalAuthResDTO> toQrySysGlobalAuthResDTOPageInfo(PageInfo<QrySysGlobalAuthResBo> qrySysGlobalAuthResBoPageInfo);

    List<QrySysGlobalAuthResDTO> toQrySysGlobalAuthResDTOList(List<QrySysGlobalAuthResBo> qrySysGlobalAuthResBoList);

    List<SysGlobalAuthBo> toSysGlobalAuth(List<SysGlobalAuth> selectEntityByTenantId);

    List<SysGlobalAuthDTO> toSysGlobalAuthBoList(List<SysGlobalAuthBo> querySysGlobalAuthListByTenantId);

    List<SysTenantDTO> toSysTenantDTOList(List<SysTenantBo> sysTenantBos);

    List<SysTenantBo> toSysTenantBoList(List<SysTenant> sysTenants);

    SysUser toSysUser(SysTenantBo sysTenantBo);
}


